import java.util.Stack;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * 输入两个整数序列，第一个序列表示栈的压入顺序，请判断第二个序列是否为该栈的弹出顺序。
 * 假设压入栈的所有数字均不相等。
 * User: xwl
 */
public class Test5 {
    public boolean validateStackSequences(int[] pushed, int[] popped) {
        // 定义一个栈
        Stack<Integer> stack = new Stack<>();
        // 定义一个值用来遍历popped数组
        int j = 0;
        // 遍历
        for (int i = 0; i < pushed.length; i++) {
            // 压栈
            stack.push(pushed[i]);
            // 判断
            while (j < popped.length && !stack.empty() && stack.peek().equals(popped[j])) {
                stack.pop();
                j++;
            }
        }
        // 返回
        return stack.empty();
    }
}
